Branch trace messaging is employed in processors and other programmable integrated circuits for design test and verification and software optimization. Existing branch trace messaging schemes support some compression of instruction execution flow, mainly for software debug. However, these schemes typically assume that the processor properly executed the instruction in memory.
There is, therefore, a need in the art for more detailed information, particularly during early system bring up, in order to support analysis of possible incorrect instruction execution by the processor hardware.